unit Con_Entidade;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Formulario_Padrao_Consulta, Grids, DBGrids, StdCtrls, Buttons, ExtCtrls,
  Db, DbTables, DBClient, DBCtrls, TFlatButtonUnit, Provider, RXCtrls,
  JvExControls, JvEnterTab;

type
  TFrmCon_Entidade = class(TFrmConsulta)
    l_nome: TLabel;
    ed_nome: TEdit;
    dbgEntidade: TDBGrid;
    Label2: TLabel;
    p_ordem: TRadioGroup;
    ed_codigo: TEdit;
    ed_cnpj: TEdit;
    l_codigo: TLabel;
    l_cnpj: TLabel;
    DataSource1: TDataSource;
    qr: TQuery;
    qrEnd: TQuery;
    qrCid: TQuery;
    qrCidCID_CODIGO: TStringField;
    qrCidPAIS_CODIGO: TStringField;
    qrCidEST_SIGLA: TStringField;
    qrCidCID_NOME: TStringField;
    qrCidCID_DDD: TStringField;
    qrEndENT_CODIGO: TStringField;
    qrEndTIPEND_CODIGO: TStringField;
    qrEndEND_CODIGO: TStringField;
    qrEndCID_CODIGO: TStringField;
    qrEndEND_ENDERECO: TStringField;
    qrEndEND_BAIRRO: TStringField;
    qrEndEND_CEP: TStringField;
    qrEndEND_FONE: TStringField;
    qrEndEND_FAX: TStringField;
    qrENT_CODIGO: TStringField;
    qrENT_CNPJ: TStringField;
    qrENT_NOME: TStringField;
    qrENT_FANTASIA: TStringField;
    qrEndCidade: TStringField;
    qrCID_NOME: TStringField;
    qrTelefone: TStringField;
    DBText1: TDBText;
    qrEndEnd_DDD: TStringField;
    qrDDD: TStringField;
    Label1: TLabel;
    DBText2: TDBText;
    dsCid: TDataSource;
    DataSetProvider1: TDataSetProvider;
    CDS: TClientDataSet;
    lblCidade: TLabel;
    dbCidade: TComboBox;
    pnlInf: TPanel;
    dsEnd: TDataSource;
    qrENT_INSCEST: TStringField;
    DBGrid1: TDBGrid;
    qryEndereco: TQuery;
    qryEnderecoTIPEND_CODIGO: TStringField;
    qryEnderecoEND_CODIGO: TStringField;
    qryEnderecoCID_CODIGO: TStringField;
    qryEnderecoEND_ENDERECO: TStringField;
    qryEnderecoEND_BAIRRO: TStringField;
    qryEnderecoEND_CEP: TStringField;
    qryEnderecoEND_FONE: TStringField;
    qryEnderecoEND_FAX: TStringField;
    qryEnderecoTIPEND_DESCRICAO: TStringField;
    qryEnderecoCidade: TStringField;
    qrENT_STATUS: TStringField;
    btnGravar: TFlatButton;
    ckbInativos: TCheckBox;
    qrENT_CPF: TStringField;
    procedure FormActivate(Sender: TObject);
    procedure BtnFecharClick(Sender: TObject);
    procedure p_ordemClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ed_cnpjKeyPress(Sender: TObject; var Key: Char);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ed_cnpjKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure ed_codigoKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure ed_nomeKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure dbgEntidadeTitleClick(Column: TColumn);
    procedure dbCidadeClick(Sender: TObject);
    procedure dbCidadeKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure dbgEntidadeEnter(Sender: TObject);
    procedure dbgEntidadeKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure Panel1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure dbgEntidadeKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure pnlInfExit(Sender: TObject);
    procedure btnGravarClick(Sender: TObject);
    procedure ckbInativosClick(Sender: TObject);

  private
    procedure FazConsulta;

  public
    Ent_Codigo: string;
    Ent_Cnpj: string;
    Ent_Nome: string;
    Ent_Tipo: Int64;

  end;

var
  FrmCon_Entidade: TFrmCon_Entidade;
  Con_Inativ: Boolean;
implementation

uses Dm, Biblio, clsEntidade, clsEndereco, clsCidade, Cad_Entidade, menu;

var
  Entidade: TEntidade;
  tds: Tdatasource;
  tq: Tquery;
  Endereco: TEndereco;
  Cidade: TCidade;

{$R *.DFM}

procedure TFrmCon_Entidade.FormActivate(Sender: TObject);
begin
  inherited;
  if (FileExists(caminho_personal + 'Nutribras')) then begin
    ckbInativos.Checked := false;
    //ckbInativos.Visible := true;

  end else begin
    if not FileExists(caminho_personal + 'albatroz') then
      ckbInativos.Checked := true;
    //ckbInativos.Visible := false;

  end;

  if FileExists(caminho_personal + 'belquimica') then begin
    btnGravar.Visible := False;
  end;
  tq.databasename := dmint.db.databasename;
  //tds.DataSet           := tq;
  //dbgEntidade.DataSource:= tds;
  if (not FileExists(caminho_personal + 'albatroz')) and (not FileExists(caminho_personal + 'nutribras')) then begin
    fazconsulta;
  end;

end;

procedure TFrmCon_Entidade.BtnFecharClick(Sender: TObject);
begin
  Ent_Codigo := qr.FieldByName('ENT_CODIGO').asstring; //tq.fieldbyname('Ent_Codigo').asstring;
  Ent_Cnpj := qr.FieldByName('ENT_CNPJ').asstring; //tq.fieldbyname('Ent_Cnpj').asstring;
  Ent_Nome := qr.FieldByName('ENT_NOME').asstring; //tq.fieldbyname('Ent_Nome').asstring;
  inherited;
end;

procedure TFrmCon_Entidade.FazConsulta;
begin
  qr.Close;
  // CDS.Close;
  CDS.Filtered := False;
  if (p_ordem.itemindex = 0) or (p_ordem.itemindex = 3) then begin
    if ed_nome.text = '' then begin
      Entidade.ConsultarTipo2(qr, ' ', Ent_Tipo, p_ordem.itemindex, ckbInativos.Checked)
    end else begin
      Entidade.ConsultarTipo2(qr, ed_nome.text, Ent_Tipo, p_ordem.itemindex, ckbInativos.Checked);
    end;

  end;
  if p_ordem.itemindex = 1 then begin
    if ed_codigo.text = '' then begin
      Entidade.ConsultarTipo2(qr, ' ', Ent_Tipo, p_ordem.itemindex, ckbInativos.Checked)
    end else begin
      ed_codigo.text := strzero(ed_codigo.text, 5);
      Entidade.ConsultarTipo2(qr, ed_codigo.text, Ent_Tipo, p_ordem.itemindex, ckbInativos.Checked);
    end;

  end;

  if p_ordem.itemindex = 2 then begin
    if ed_cnpj.text = '' then begin
      Entidade.ConsultarTipo2(qr, ' ', Ent_Tipo, p_ordem.itemindex, ckbInativos.Checked);
    end else begin
      Entidade.ConsultarTipo2(qr, ed_cnpj.text, Ent_Tipo, p_ordem.itemindex, ckbInativos.Checked);
    end;
  end;
  if p_ordem.itemindex = 4 then begin
    if dbCidade.ItemIndex = 0 then begin
      Entidade.ConsultarTipo2(qr, ' ', Ent_Tipo, p_ordem.itemindex, ckbInativos.Checked);
    end else begin
      Entidade.ConsultarTipo2(qr, dbCidade.Items.Strings[dbCidade.ItemIndex], Ent_Tipo, p_ordem.itemindex, ckbInativos.Checked);
    end;
  end;
  if p_ordem.itemindex = 5 then begin
    if ed_cnpj.text = '' then begin
      Entidade.ConsultarTipo2(qr, ' ', Ent_Tipo, p_ordem.itemindex, ckbInativos.Checked);
    end else begin
      Entidade.ConsultarTipo2(qr, ed_cnpj.text, Ent_Tipo, p_ordem.itemindex, ckbInativos.Checked);
    end;
  end;
  qrEnd.Open;
  qr.open;

  //qr.Filtered := False;
  //qr.Filter   := 'Ent_DataIna not in(30/12/1899)';
  //qr.Filtered := True;
  // CDS.Open;

end;

procedure TFrmCon_Entidade.p_ordemClick(Sender: TObject);
begin
  inherited;
  if (p_ordem.itemindex = 0) or (p_ordem.itemindex = 3) then begin
    l_nome.visible := true;
    ed_nome.visible := true;
    l_codigo.visible := false;
    ed_codigo.visible := false;
    l_cnpj.visible := false;
    ed_cnpj.visible := false;
    lblCidade.Visible := false;
    dbCidade.Visible := False;

    if (p_ordem.itemindex = 0) then begin
      ed_nome.MaxLength := 40
    end else begin
      ed_nome.MaxLength := 25;
    end;

  end else if (p_ordem.ItemIndex = 1) then begin
    l_nome.visible := false;
    ed_nome.visible := false;
    l_codigo.visible := true;
    ed_codigo.visible := true;
    l_cnpj.visible := false;
    ed_cnpj.visible := false;
    lblCidade.Visible := false;
    dbCidade.Visible := False;

  end else if (p_ordem.ItemIndex = 2) then begin
    l_nome.visible := false;
    ed_nome.visible := false;
    l_codigo.visible := false;
    ed_codigo.visible := false;
    l_cnpj.visible := true;
    ed_cnpj.visible := true;
    lblCidade.Visible := false;
    dbCidade.Visible := False;

  end else if (p_ordem.ItemIndex = 4) then begin
    dbCidade.Items.clear;
    qrCid.Open;
    qrCid.First;
    dbCidade.Items.Add('[ESCOLHA A CIDADE]');

    while not (qrCid.Eof) do begin
      dbCidade.Items.Add(qrCidCid_Nome.AsString);
      qrCid.Next;
    end;

    dbCidade.ItemIndex := 0;
    l_nome.visible := false;
    ed_nome.visible := false;
    l_codigo.visible := false;
    ed_codigo.visible := false;
    l_cnpj.visible := false;
    ed_cnpj.visible := false;
    lblCidade.Visible := True;
    dbCidade.Visible := True;

  end else if (p_ordem.itemindex = 5) then begin
    l_nome.visible := false;
    ed_nome.visible := false;
    l_codigo.visible := false;
    ed_codigo.visible := false;
    l_cnpj.visible := true;
    ed_cnpj.visible := true;
    l_cnpj.Caption := 'Status';
    lblCidade.Visible := false;
    dbCidade.Visible := False;

  end;

  FazConsulta;

end;

procedure TFrmCon_Entidade.FormDestroy(Sender: TObject);
begin
  inherited;
  tds.free;
  tq.free;
  Entidade.free;
end;

procedure TFrmCon_Entidade.FormCreate(Sender: TObject);
begin
  inherited;
  tds := TDataSource.create(self);
  tq := Tquery.create(self);
  Entidade := TEntidade.Create;
  Endereco := TEndereco.Create;
  Cidade := TCidade.Create;
  qr.databasename := dmint.db.databasename;
  qrend.databasename := dmint.db.databasename;
  qrcid.databasename := dmint.db.databasename;
  qryendereco.databasename := dmint.db.databasename;
  Con_Inativ := False;
end;

procedure TFrmCon_Entidade.ed_cnpjKeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
  if key = '.' then abort;
  if p_ordem.itemindex <> 5 then
    if not (Key in ['0'..'9',Chr(87), Chr(119), Chr(VK_DELETE), Chr(VK_BACK)]) then Key := #0;
end;

procedure TFrmCon_Entidade.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  Endereco.Free;
  Cidade.Free;
  qr.close;
  qrEnd.close;
  qrCid.Close;
end;

procedure TFrmCon_Entidade.ed_cnpjKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  if key = 12 then FazConsulta;
  // qr.Locate('Ent_CNPJ',StrZero(ed_cnpj.Text,14),[lopartialkey]);
end;

procedure TFrmCon_Entidade.ed_codigoKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  if key = 12 then FazConsulta;
  // qr.Locate('Ent_Codigo',StrZero(ed_codigo.Text,5),[lopartialkey]);
end;

procedure TFrmCon_Entidade.ed_nomeKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  if key = 12 then begin
    FazConsulta;
  end;
  // qr.Locate('Ent_Nome',ed_nome.Text,[lopartialkey]);
end;

procedure TFrmCon_Entidade.dbgEntidadeTitleClick(Column: TColumn);
begin
  inherited;
  CDS.IndexFieldNames := Column.FieldName;
end;

procedure TFrmCon_Entidade.dbCidadeClick(Sender: TObject);
begin
  inherited;
  FazConsulta;
end;

procedure TFrmCon_Entidade.dbCidadeKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  if key = 12 then begin
    CDS.Filtered := False;
    if dbCidade.ItemIndex <> 0 then begin
      FazConsulta;
    end;
  end;
end;

procedure TFrmCon_Entidade.dbgEntidadeEnter(Sender: TObject);
begin
  inherited;
  pnlinf.Visible := false;
end;

procedure TFrmCon_Entidade.dbgEntidadeKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  pnlinf.Visible := false;
end;

procedure TFrmCon_Entidade.Panel1MouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  inherited;
  pnlinf.Visible := false;
end;

procedure TFrmCon_Entidade.dbgEntidadeKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  inherited;
  if key = VK_CONTROL then begin
    qryEndereco.Close;
    qryEndereco.Open;
    pnlInf.Visible := True;
  end;
end;

procedure TFrmCon_Entidade.pnlInfExit(Sender: TObject);
begin
  inherited;
  pnlInf.Visible := False;
end;

procedure TFrmCon_Entidade.btnGravarClick(Sender: TObject);
var
  f1: TfrmCad_Entidade;

begin
  inherited;
  ent_tipocad := 0;
  f1 := TfrmCad_Entidade.Create(Self);
  f1.btnC_Entidade.Visible := False;
  f1.ShowModal;
  f1.Free;
  FazConsulta;

end;

procedure TFrmCon_Entidade.ckbInativosClick(Sender: TObject);
begin
  inherited;
  FazConsulta;
end;

end.
